[IA64] Fix oops message from timer_interrupton VTI domain
authorawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Wed, 24 Jan 2007 19:28:05 +0000 (12:28 -0700)
committerawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Wed, 24 Jan 2007 19:28:05 +0000 (12:28 -0700)
commitfa2fb716ec66a48d122aea14a50c24bec93b6e05
treec15dfa63b04a1bc5e28735eccd5efc942a4e22db
parent83a7f58cce168d57e4a15bfe52b66b3905c1bc43
[IA64] Fix oops message from timer_interrupton VTI domain

This patch intends to fix the oops message from timer_interrupt on
VTI domain.  This problem occurred when we test PV-on-HVM driver by
ltp-20061121.  Typical message shown as follows.

ltp Now Running...( Exception mode )
dom=domVTI
1 times
Unable to find swap-space signature
Oops: timer tick before it's due (itc=ed98bb5849,itm=ed98bb5849)
Oops: timer tick before it's due (itc=f20bca8ca3,itm=f20bca8ca3)
Oops: timer tick before it's due (itc=f4ea4e2b32,itm=f4ea4e2b32)
mmap1(7392): unaligned access to 0x60000fffffffb634, ip=0x200000000004fad0
mmap1(7392): unaligned access to 0x60000fffffffb634, ip=0x200000000004fad0
ltp End

These oops messages are generated because timer_interrupt checks
the condition itc > itm.  Currently Xen-hypervisor outputs following
values, max(current_itc,vtm->last_itc).  Sometimes oops message
appeared if we use the value of vtm->last_itc as ia64_get_itc()
return value, because the vtm->last_itc is same as itm.  To fix this
issue, it needs to add return value like +1.

But, ia64_get_itc() is handled at vmx_asm_mov_from_ar@optvfault.S
and it works same logic of  now_itc()@vlsapic.c.  And these routines
shared vtm->last_itc.  So I fix this problem by adding +1 at caller
of update_last_itc.

Signed-off-by: Atsushi SAKAI <sakaia@jp.fujitsu.com>
xen/arch/ia64/vmx/vlsapic.c